package t

import "strconv"

/*
	解释： 1.回文数是对称相等, 所以负数永远不是回文数，让后把数值反转，如果反转后与原值相当，说明就是回文数
			2. 还有就是把数值转成字符串，用左右指针一次从左到右进行数值比较如果都相等，就说明是回文数
*/

// 整数转换
func reserve(x int) int {
	y := 0
	for (x != 0) {
		if (y > 4294967296 || y < - 4294967296) {
			return 0
		}
		y = y * 10 + x % 10
		x = x / 10
	}
	if (x < 0) {
		return -y
	}
	return y
}

// 判断是否是回文数
func IsPalindrome(x int) bool {
	xr := reserve(x)
	if (xr == x && xr >= 0) {
		return true
	}

	return false
}

func IsPalindrome1(x int) bool {
	if x < 0 {
		return false
	}
	xs := strconv.Itoa(x)
	s := 0
	e := len(xs) - 1
	flag := true
	for (s < e) {
		if xs[s] == xs[e] {
			flag = true
		}else {
			flag = false
			break
		}
		s++
		e--
	}

	return flag
}
